# 作者: 赵若云
# 2025年02月28日03时16分45秒
# 3478783573@qq.com

import re

mm = "c:\\a\\b\\c"
print(mm)

print(re.match(r'c:\\', mm).group())  # 加r让\转义

# 正则的选项，即flag
# re.A 不让\w 匹配汉字
text = "Python 你好 123"
pattern = r"\w+"
# 默认模式
print(re.findall(pattern, text))
# ['Python', '你好', '123']  # \w 默认能匹配汉字
# 使用 re.A（ASCII 模式）
print(re.findall(pattern, text, re.A))
# ['Python', '123']  # 汉字 "你好" 被排除
print('-' * 50)

# re.I 是否区分大小写
text = "Hello hello HELLO"
pattern = r"hello"
# 默认模式（区分大小写）
print(re.findall(pattern, text))
# ['hello']  # 只匹配了小写 "hello"
# 使用 re.I（忽略大小写）
print(re.findall(pattern, text, re.I))
# ['Hello', 'hello', 'HELLO']  # 所有大小写形式的 "hello" 都匹配到了
print('-' * 50)

# re.S 可以让.匹配上\n
text = "Hello\nWorld"
pattern = r"Hello.*World"
# 默认模式（`.` 不能匹配换行）
print(re.findall(pattern, text))
# []  # 没匹配到，因为 `.` 不能跨行
# 使用 re.S（让 `.` 能匹配 `\n`）
print(re.findall(pattern, text, re.S))
# ['Hello\nWorld']  # 成功匹配整段文本
print('-' * 50)
